<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>会员管理</title>
    <link href="/lib/layui/css/layui.css" rel="stylesheet">
</head>
<body>
<!-- 查询表单；查询按钮 -->
<form class="layui-form" action="">
    <div class="layui-form-item" style="margin-top:15px">
        <div class="layui-inline">
            <label class="layui-form-label">会员名</label>
            <div class="layui-input-inline">
                <input id="input1" type="text" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">电话号码</label>
            <div class="layui-input-inline layui-input-wrap">
                <input id="input2" type="text" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-inline">
            <input id="searchBtn" type="button" value="查询会员" class="layui-btn">
        </div>
    </div>
</form>

<table id="table1"></table>


<!-- 重置密码 弹出窗口的模板 -->
<script id="template1" type="text/html">
    <form class="layui-form" action="" lay-filter="form1">
        <!-- 放置一个隐藏框 name="id" 可以被赋值
            新增的时候id没有值 编辑的时候id有值 -->
        <input type="hidden" id="memberId" name="id">
        <div class="layui-form-item" style="margin-top:15px">
            <div class="layui-inline">
                <label class="layui-form-label">旧密码</label>
                <div class="layui-input-inline">
                    <input type="password" name="password" autocomplete="off" class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">新密码</label>
                <div class="layui-input-inline">
                    <input type="password" name="newPassword" autocomplete="off" class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">重复新密码</label>
                <div class="layui-input-inline">
                    <input type="password" name="repeatPassword" autocomplete="off" class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item" style="margin-top:15px;margin-left:130px">
            <div class="layui-inline">
                <input id="resetBtn" type="button" value="重置" class="layui-btn"
                       style="background-color: white;color: black;border: 1px black"/>
                <input id="saveBtn" type="button" value="保存" class="layui-btn"/>
            </div>
        </div>
    </form>
</script>


<!-- 表格操作模板 被每一条数据反复使用 -->
<script id="template2" type="text/html">
    <input lay-event="reset" type="button" class="layui-btn layui-btn-xs layui-bg-red" value="重置密码"/>
</script>
<!-- 状态切换模板 -->
<script id="ID-table-demo-templet-switch" type="text/html" th:inline="none">
    <input type="checkbox" name="status" value="{{=d.id }}" title="正常用户|停用" lay-skin="switch"
           lay-filter="demo-templet-status" {{=d.status== 0 ? "checked" : "" }}>
</script>

<!-- 引入依赖的js文件 -->
<script src="/lib/layui/layui.js"></script>
<script src="/js/common.js"></script>

<script th:inline="none">
    //告诉浏览器加载layui框架中的哪些组件
    layui.use(['layer', 'form', 'table', 'upload'], function () {

        //第一步：先对加载的组件起名字，才能通过对象名调方法
        var layer = layui.layer;//操作弹窗
        var form = layui.form;//操作表单
        var table = layui.table;//操作表格
        var upload = layui.upload;//上传文件
        var $ = layui.jquery;//从layui中把jquery拿出来用

        //给保存按钮绑事件
        //事件委托 标签名选择器 id选择器：作用于整个<body><body/> 只要当前页面有saveBtn，就能保存
        $("body").on("click", "#saveBtn", function () {
            //获取表单中的所有数据 lay-filter="form1"
            var data = form.val("form1");
            //判断属性是不是都填上了
            if (!data.password) {
                layer.msg("请输入旧密码")
                return false;
            }
            if (!data.newPassword) {
                layer.msg("请输入新密码")
                return false;
            }
            if (!data.repeatPassword) {
                layer.msg("请重复新密码")
                return false;
            }
            if (data.password === data.newPassword){
                layer.msg("新旧密码相同，请重新输入")
                return false;
            }
            if (data.newPassword !== data.repeatPassword){
                layer.msg("两次新密码不同，请重新输入")
                return false;
            }
            //把数据传到后台 Ajax异步请求
            //只有请求成功了，才进function！！！
            $.post("/member/updatePassword", data, function () {
                //关窗口
                layer.closeAll();
                //给成功提示
                layer.msg("保存成功");
                //再查一遍表格的数据（点一下查询按钮）
                $("#searchBtn").click();
            });
        });

        //给查询按钮绑定事件
        $("#searchBtn").on("click", function () {
            //渲染表格
            table.render({
                elem: "#table1",
                url: "/member/table",
                cols: [[
                    //field中的属性名必须与User类中定义的成员变量名一致
                    {title: "ID", field: "id"},
                    {title: "会员名", field: "memberName"},
                    {title: "电话", field: "tel"},
                    {title: '状态', width: 150, templet: '#ID-table-demo-templet-switch'},
                    {title: "操作", templet: "#template2"}
                ]],
                where: {memberName: $("#input1").val(), tel: $("#input2").val()},
                page: true,
                limits: [10, 15, 20],
                limit: 10
            });
        }).click();

        //给切换状态绑定事件
        form.on('switch(demo-templet-status)', function (obj) {
            console.log(obj.value);//要操作的商品的ID
            console.log(obj.elem.checked);//true就是正常用户，false就是停用
            $.post("/member/status", {id: obj.value, status: obj.elem.checked ? 0 : -1}, function () {
                layer.msg("更新状态成功");
            });
        });

        //给表格操作（修改密码）绑事件
        table.on("tool", function (obj) {
            //定位行和列
            var event = obj.event;//obj内记录自定义的event值，用以区分不同操作
            var data = obj.data;//data表示该行所有数据  用以区别行

            //重置密码
            if (event === "reset") {
                //1.弹出窗口
                layer.open({
                    title: "编辑会员",
                    type: 1,
                    area: ['400px', '400px'],
                    content: $("#template1").html()
                });
                //把id塞进input框里
                $("#memberId").val(data.id);
            }

        });

    });
</script>


</body>
</html>
